Field of the Invention
The present invention relates to data processing systems. More particularly, this invention relates to data storage apparatuses configured to store data values and having circuitry provided to detect a change in a stored data value.
Description of the Prior Art
It is known that a data value stored in a data storage apparatus may be vulnerable to corruption, for example by a particle strike causing a bit flip in the stored data value. For this reason, prior art data storage apparatuses have been provided with mechanisms for determining if a data value read out from a data storage apparatus has changed in any way since that data value was originally stored. One such mechanism is the provision of parity checking circuitry. The parity checking circuitry is configured such that when a data value is stored in the data storage apparatus, a parity value is generated on the basis of that data value (for example by passing the data value to an XOR tree to generate a single resulting parity bit), which is then stored in association with the data value in the data storage apparatus. When the stored data value is later read out, the individual bits of the data value can again be passed to an identical XOR tree for a comparison parity bit to be generated and the comparison parity bit can then be compared with the parity bit which was stored in association with the data value when that data value was originally stored. If the two parity bit values differ then it is known that a bit flip has occurred within the stored data value and an appropriate response, such as to discard the stored data value or to seek to correct the stored data value, can then be carried out.
An example data storage apparatus 10 configured to behave in this manner is schematically illustrated in FIG. 1. A multi-bit data value is originally received and the bits of this data value are stored in the respective bit cells 11-14 (note that for clarity only four bit cells are illustrated but typically more may be provided), whilst the multi-bit data value is also passed to XOR tree 15 which generates a single bit parity value P which is stored at location 16 in association with the stored data value. When a read access is carried out, the individual bits of the data value are also passed to XOR tree 17 (which is identically configured to XOR tree 15) and the resulting parity bit value is compared by comparison circuitry 18 to the parity bit P read out from parity bit storage 16. If these two values differ then the error flag is asserted.